<?xml version="1.0" encoding="utf-8" ?> 
<Feature id="UI" name="Base UI framework configuration">
	<ConfigurationClasses>
		<Class name="sysObjs-GuiMgr" type="Swaf.Gui.WinForm.WinFormGuiManager,SwafCore.Gui.WinForm" />
	</ConfigurationClasses>

	<Dependencies>
		<Dependency type="feature">BaseFrameworkFeature.xml</Dependency>
	</Dependencies>

	<ClassFactory id="GuiBusinessProcesses">
		<Class name="AppViewBusinessProcess" type="Swaf.BusinessProcesses.AppViewBusinessProcess,SwafCore.BusinessProcesses" />
		<Class name="BizObjViewEditBusinessProcess" type="Swaf.BusinessProcesses.BizObjViewEditBusinessProcess,SwafCore.BusinessProcesses" />		
	</ClassFactory>

	<ClassFactory id="GuiBizObjFieldTypes">
		<Class name="String" mutable="true"
		type="System.Windows.Forms.TextBox,System.Windows.Forms" />
		<Class name="Integer" mutable="true"
		type="System.Windows.Forms.TextBox,System.Windows.Forms" />
		<Class name="Guid" mutable="true"
		type="System.Windows.Forms.TextBox,System.Windows.Forms" />
		<Class name="Boolean" mutable="true"
			type="System.Windows.Forms.CheckBox,System.Windows.Forms">
			<Property name="ValueProperty">Checked</Property>
		</Class>
		<Class name="Date" mutable="true"
			type="System.Windows.Forms.DateTimePicker,System.Windows.Forms">
			<Property name="ValueProperty">Value</Property>
		</Class>
	</ClassFactory>
	
	<ClassFactory id="GuiControlSizings">
		<Class name="CommandButton" type="Swaf.Gui.WinForm.ControlSizing.ButtonSizing,SwafCore.Gui.WinForm" mutable="true"/>
		<Class name="Button" type="Swaf.Gui.WinForm.ControlSizing.ButtonSizing,SwafCore.Gui.WinForm" mutable="true"/>
		<Class name="Label" type="Swaf.Gui.WinForm.ControlSizing.LabelSizing,SwafCore.Gui.WinForm" mutable="true"/>
		<Class name="TextBox" type="Swaf.Gui.WinForm.ControlSizing.TextBoxSizing,SwafCore.Gui.WinForm" mutable="true"/>
		<Class name="default" type="Swaf.Gui.WinForm.ControlSizing.GenericSizing,SwafCore.Gui.WinForm" mutable="true"/>
	</ClassFactory>
	
	<ClassFactory id="GUIStyleHandlers">
		<Class name="background-color" type="Swaf.Gui.BackColorStyle,SwafCore.Gui.WinForm" mutable="true" />
	</ClassFactory>
	

	<ClassFactory id="GuiWidgets">
		<Class name="SpreadsheetLayout" type="Swaf.Gui.Layout.WinFormSpreadsheetLayout,SwafCore.Gui.WinForm" mutable="true" />
		<Class name="AbsoluteLayout" type="Swaf.Gui.Layout.AbsoluteLayout" mutable="true" />
		<Class name="TabLayout" type="Swaf.Gui.Layout.TabLayout, Swaf.Gui.WinForm" mutable="true" />

		<Class name="BizObjDisplay" type="Swaf.Gui.WinForm.BizObjDisplay,SwafCore.Gui.WinForm" mutable="true" />
		<Class name="BizObjListDisplay" type="Swaf.Gui.WinForm.DataGridBizObjListDisplay,SwafCore.Gui.WinForm" mutable="true" />
		<Class name="ButtonCommandListDisplay" type="Swaf.Gui.WinForm.ButtonCommandListDisplay,SwafCore.Gui.WinForm" />
		
	</ClassFactory>

	<ApplicationData>
		<Element name="GuiWidgetTemplates" type="catalog from $CatalogHome$/GuiWidgetTemplates" />
		<Element name="GuiViewTemplates" type="catalog from $CatalogHome$/GuiViewTemplates" />
	</ApplicationData>
	
	<BusinessObjects>
		<BusinessObject type="GuiView" key="id">
			<Field name="id" />
			<Field name="name" />
			<Field name="mediumName" />
			<Field name="description" />
		</BusinessObject>
	</BusinessObjects>

	<BusinessRules>
		<BusinessRule name="getMainUserView">
			<LocalClass name="Swaf.Gui.WinForm.GuiRules,SwafCore.Gui.WinForm" />
		</BusinessRule>
		<BusinessRule name="getUserViewList">
			<LocalClass name="Swaf.Gui.WinForm.GuiRules,SwafCore.Gui.WinForm" />
		</BusinessRule>
		<BusinessRule name="getView">
			<LocalClass name="Swaf.Gui.WinForm.GuiRules,SwafCore.Gui.WinForm" />
		</BusinessRule>
		<BusinessRule name="getDisplayTemplate">
			<LocalClass name="Swaf.Gui.WinForm.GuiRules,SwafCore.Gui.WinForm" />
		</BusinessRule>
	</BusinessRules>

</Feature>